package com.story.api.moduler.song.dao;

import com.story.api.common.persistence.model.VedioDetail;
import com.story.api.moduler.song.transfer.vo.MediaResourceVo;
import com.story.api.moduler.song.transfer.vo.SongCountVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.PathVariable;

import java.util.List;
import java.util.Map;

/**
 * <p>
  * 视频详情表 Mapper 接口
 * </p>
 *
 * @author yangbo
 * @since 2017-12-11
 */
public interface VedioDetailDao {

    /**
     * 得到一个ageType分类下的分页视频
     * @param ageType
     * @return
     */
    public List<VedioDetail> getVedioDetailByPage(@Param("ageType") Integer ageType);

    /**
     * 得到一个cateId分类下的分页视频
     * @param cateId
     * @return
     */
    public List<VedioDetail> getVedioDetaiPageByCateId(@Param("cateId") Integer cateId);

    /**
     * 得到播放量前十的视频名称
     * @return
     */
    public List<VedioDetail> getHotVedio(@Param("version") Integer version);

    /**
     * 关键词搜索
     * @param keyword
     * @return
     */
    public List<VedioDetail> getSearchVedioPage(@Param("keyword") String keyword,@Param("version") Integer version);

    /**
     * 得到排序后的视频分页列表
     * @param ageType
     * @return
     */
    List<MediaResourceVo> getRankedVideoList(@Param("ageType") Integer ageType);

    /**
     * 通过filePath获得id和资源类型
     * @param filePath
     * @return
     */
    Map<String,Object> getIdAndResTypeByFilePath(@Param("filePath") String filePath);

    /**
     * 得到一组视频的播放总量
     * @param vedioIdList
     * @return
     */
    Integer playCountSum(@Param("vedioIdList") List<Integer> vedioIdList);

    /**
     * 得到一组视频分享总量
     * @param vedioIdList
     * @return
     */
    Integer shareCountSum(@Param("vedioIdList") List<Integer> vedioIdList);
}